This application relates to hard disc drives and more particularly to an apparatus and method for rotationally optimizing seek initiation.
In a disc drive data is recorded on a disc in concentric, circular paths known as tracks. Servo bursts are written in each track on the disc and contain position information. The servo bursts are positioned along radial slightly wedged shaped quasi-lines that cross the circular tracks and divide the disc into zones. The burst wedge""s width increases slightly from the inner portion of the disc to the outer portion. Each zone contains a number of sectors, and the number of sectors vary from one zone to the next. During operation the disc continually rotates and a read/write head a given radius from the center of the disc would read or write data in a given track. An actuator arm swings the head in an arc across the disc surface to allow the head to read or write data in different tracks.
The read/write head is mounted upon the distal end of the actuator arm, and the arm is moved by a servo control system. Accordingly, the track position of the head is controlled by the servo system. When the head needs to access a different track, the actuator arm swings the head to the desired track location. The motion of the head from one track to another includes an acceleration and a deceleration phase, and the period during which head movement occurs is known as the seek time.
In a disc drive, data is read from or written to the disc in response to a read/write command. This command contains information which tells the control system where the target data is located on the disc in relation to the servo bursts, zones, and sectors. The read/write head detects its position as it passes over a servo burst by reading the position information the servo burst contains. The control system then uses the detected position to generate the proper signal to apply in positioning the actuator arm.
To increase the rate at which data can be retrieved from a disc drive, a buffer is employed to store data that is prefetched. Prefetching data is the process of reading data that is located rotationally just ahead or just behind target data on a track and storing the data in the buffer. The prefetched data has not been requested by the host, but often the host will request this data at some nearby future time. The buffer can provide the prefetched data to the host computer much faster than the data can be read from the disc. Therefore, a performance gain is realized when the host requests the prefetched data.
In a conventional disc drive, prefetching begins once the target data has been read and continues until a new command is received. From the head""s perspective, data that will be read later in time is positioned ahead of the data currently being read because one must look ahead of the head""s current position to see what the head will read next. Prefetching the data that is rotationally positioned ahead of the target data, as viewed by the head, and arrives at the head after the target data is referred to as a read look ahead (RLA). When the new command is received, the control system immediately halts RLA prefetching and seeks the actuator arm and head to the target data""s track. Zero latency prefetching (ZLP) then commences on data that is rotationally positioned behind the target data, as viewed by the head, and arrives at the head before the target data. Once the target data arrives, prefetching ends and the target data is read. This process increases performance, but the ZLP data that is prefetched from the new target data""s track before the target data arrives is not as useful in the buffer as the RLA data. The RLA data is more useful in the buffer because the host frequently requests RLA data, which is written sequentially after and rotationally ahead of target data. The host less frequently requests ZLP data, which is written sequentially before and rotationally behind target data.
To continue prefetching the RLA data during the latency period once a command is received, the seek must be delayed rather than initiating immediately. Conventional disc drives are only capable of seeking immediately once a command is received. Thus, conventional disc drives are incapable of prefetching useful RLA data instead of less useful ZLP data once a command is received.
By utilizing an optimized seek initiation, the method and apparatus in accordance with the present invention solves the aforementioned problem and other problems of producing a disc drive that prefetches RLA data once a command is received. The seek operation method involves receiving a command and then delaying the seek while prefetching from the old target""s track rather than seeking immediately and then continuing to prefetch from the new target""s track. The method involves calculating the access rotation amount, which is the amount of rotation that will occur from the current position of the actuator of the disc drive to the target data""s position. A seek rotation amount is also calculated, and the seek rotation amount is the amount of rotation that will occur during the time the actuator arm moves from the old target""s track to the new target""s track. A latency period is found by subtracting the seek amount from the access amount. The latency period can be represented by a burst count. The burst count is the number of bursts that will rotate by the head during the remainder of the latency period. The RLA data is prefetched during this latency period and the seek can be delayed. As the latency period is elapsing, bursts are passing by the head and are being read. Each time a burst is read, the burst count representing the latency is decremented. Then, when the burst count is decremented to zero indicating the latency period has expired, the actuator arm seeks to the new track just in time to begin reading the new target data.
In one aspect of the invention, a method for optimizing seek initiation involves calculating a seek trigger burst rather than a latency period represented by a burst count. In such a method, the command is received and then a number of servo bursts that will rotate by the actuator arm during the seek to the new track is calculated. Subtracting the number of servo bursts from the servo burst number derived from the command, which gives the position of the new target, results in a trigger burst that once read by the head indicates that the seek must initiate. The prefetch RLA data located rotationally ahead of the old target is then read until the trigger burst rotates to the actuator arm and is read by the head. At that point, the actuator arm seeks to the new track just in time to begin reading the new target data.
These two methods may also be adapted to disc drives where several commands are qeued and scheduled to minimize the seek times. In such a case, either the latency period or the trigger burst between reading each command is calculated for all the commands.
In another aspect of the invention, the apparatus includes a processor which calculates the latency period count or the trigger value. The processor executes a program stored in memory to make these calculations. A servo detector reads the position information contained in the servo bursts and provides it to the processor. A host control logic decodes commands and provides them to the processor. A servo control receives control signals from the processor and holds the actuator arm over a current track that is being read from or seeks the actuator arm to a new track. A buffer manager receives a buffer control signal from the processor that instructs the buffer manager as to how prefetch data should be read and supplied. A buffer receives and stores the prefetched data from the buffer manager and provides it to the host control logic upon request. The processor computes an access rotation amount for the target data to rotate to the head and a seek rotation amount for the actuator to move the head to the new track. A latency value is found by subtracting the seek amount from the access amount. The processor then instructs the servo control to hold the actuator on the current track and the buffer manager to prefetch during the latency period. At the end of the latency period, the servo control is instructed to seek to the new track.
In another aspect of the invention, the processor calculates a trigger value. The trigger burst or value is calculated by receiving the target""s servo burst number position and finding the number of servo bursts that will rotate by the actuator as it seeks to the new track. Subtracting the number of servo bursts for the seek from the servo burst number representing the position of the target results in the trigger. The servo control is instructed to hold the head on the current track until the trigger is read by the head and the buffer manager is instructed to prefetch until the trigger is read by the head. When the servo detector receives the trigger read by the head, the servo control is instructed to seek the head to the new track.
Rotationally optimizing the seek initiation by delaying the seek until the last moment so that the actuator arm may arrive at the target track just in time to begin reading the target data enables the disc drive to prefetch and store more useful data in the buffer and efficiently provide the useful data to the host upon request.
These and various other features as well as advantages which characterize the present invention will be apparent from a reading of the following detailed description and a review of the associated drawings.